Refining Abstract Interpretation Based Value Analysis with Constraint Programming Techniques
نویسندگان
چکیده
Abstract interpretation based value analysis is a classical approach for verifying programs with floating-point computations. However, state-of-the-art tools compute an over-approximation of the variable values that can be very coarse. In this paper, we show that constraint solvers can significantly refine the approximations computed with abstract interpretation tools. We introduce a hybrid approach that combines abstract interpretation and constraint programming techniques in a single static and automatic analysis. rAiCp, the system we developed is substantially more precise than Fluctuat, a state-of-the-art static analyser. Moreover, it could eliminate 13 false alarms generated by Fluctuat on a standard set of benchmarks.
منابع مشابه
Refining Abstract Interpretation-based Approximations with a Floating-point Constraint Solver
Floating-point arithmetic differs from real arithmetic, which makes programming with floating-point numbers tricky. Estimating the precision of a floating-point computation in a program, i.e., estimating the difference with the result of the same sequence of operations in an idealized real number semantics, is then necessary. Tools like Fluctuat, based on abstract interpretation, have been desi...
متن کاملConstraint Databases and Program Analysis Using Abstract Interpretation
In this paper we discuss a connection between two seemingly distant research areas in computer science: constraint databases and abstract interpretation. We show that while the goals of research in the respective communities are diierent, the used techniques are often based on similar common foundations. We substantiate this claim by showing that abstract interpretation of a standard (Algol-lik...
متن کاملA Constraint Solver Based on Abstract Domains
In this article, we apply techniques from Abstract Interpretation (a general theory of semantic abstractions) to Constraint Programming (which aims at solving hard combinatorial problems with a generic framework based on first-order logics). We highlight some links and differences between these fields: both compute fixpoints by iteration but employ different extrapolation and refinement strateg...
متن کاملAn Application of Constraint Propagation to Data-Flow Analysis
The optimized compilation of Constraint Logic Programming (CLP) languages can give rise to impressive performance improvements, even more impressive than the ones obtainable for the compilation of Prolog. On the other hand, the global analysis techniques needed to derive the necessary information can be significantly more complicated than in the case of Prolog. The original contribution of the ...
متن کاملDeeniteness Analysis for Clp(r)
Constraint logic programming (CLP) languages generalise logic programming languages, amalgamating logic programming and constraint programming. Combining the best of two worlds, they provide powerful tools for wide classes of problems. As with logic programming languages, code optimization by compilers is an important issue in the implementation of CLP languages. A compiler needs sophisticated ...
متن کامل